package cn.biplam.back.sql.type;

import cn.biplam.common.wrapper.ErrorMessage;

/**
 * 数据类型接口
 * @author 	WangSong
 * @create 	Mar 11, 2009 8:11:35 PM
 * @version 1.0
 */
public interface Type {
	
	/**
	 * 数据类型 
	 */
	public enum Data_Type{
		/** 整型 */
		INT,
		/** 大文本数据 */
		BLOB,
		/** 字符型 */
		CHAR,
		/** 日期型 */
		DATE,
		/** 高精度浮点数 */
		DECIMAL,
		/** 单精度浮点数 */
		NUMBER,
		/** 变长字符型 */
		VARCHAR;
	}
	
	/**非Null的空值*/
	public static final String EMPTY_VALUE="";

	/**返回数据元的数据类型的完整描述*/
	public String getType();
	
	/**返回数据元数据类型的关键字*/
	public String getTypeName();
	
	/**查询数据元内容是否为空*/
	public boolean isNull();
	
	/**返回数据元的长度*/
	public int getPercesion();
	
	/** 返回数据源精度 */
	public int	getScale();
	
	/**设置数据元的长度*/
	public void setLength(int iLength) throws ErrorMessage;
	
	/**设置数据元的值(不允许传入null)*/
	public void setValue(String sValue) throws ErrorMessage;
	
	/**获得数据元的值，其内容必须经过初始化/设置*/
	public String getValue() throws ErrorMessage;
	
	/**返回SQL语法表示的数据内容的字符串*/
	public String toString();

}
